#include<bits/stdc++.h>
#define int long long
using namespace std;
int q;
int l1,l2,a[35],b[35];
int f[35][2][2],vis[35][2][2];
int dp(int x,int z1,int z2){
    if(x<1) return 1;
    if(vis[x][z1][z2]) return f[x][z1][z2];
    vis[x][z1][z2]=1;
    int res=0;
    int d1=(z1?a[x]:1),d2=(z2?b[x]:1);
    for(int i=0;i<=d1;i++){
        for(int j=0;j<=min(d2,i);j++){
            res+=dp(x-1,(z1&&(i==d1)),(z2&&(j==d2)));
        }
    }
    return f[x][z1][z2]=res;
}
int calc(int x,int y){
    for(int i=0;i<=32;i++) a[i]=b[i]=0;
    for(int i=0;i<=32;i++)
        for(int j=1;j<4;j++) f[i][j&1][j>>1&1]=vis[i][j&1][j>>1&1]=0;
    l1=l2=0;
    while(1){
        a[++l1]=x%2,x/=2;
        if(!x) break;
    }
    while(1){
        b[++l2]=y%2,y/=2;
        if(!y) break;
    }
    return dp(32,1,1);
}
void sol(){
    int l,r;
    scanf("%lld %lld",&l,&r);
    printf("%lld\n",calc(r,r)-calc(l-1,r)-calc(r,l-1)+calc(l-1,l-1));
}
signed main(){
    freopen("comb.in","r",stdin);
    freopen("comb.out","w",stdout);
    scanf("%lld",&q);
    while(q--) sol();
    return 0;
}